Title Banner

Previous Book Contents Book Index Next

Inside Macintosh: QuickDraw GX Printing Extensions and Drivers /
Chapter 4 - Printing Messages / Printing Messages Reference
Printing Messages / PostScript Imaging Messages


GXPostScriptGetDocumentProcSetList

QuickDraw GX sends the GXPostScriptGetDocumentProcSetList message at the start of imaging for a docuemtn to determine which procedure sets are needed for the document. You can override the GXPostScriptGetDocumentProcSetList message to retrieve information about those procedure sets. Your override of the GXPostScriptGetDocumentProcSetList message must match the following formal declaration:

OSErr MyPostScriptGetDocumentProcSetList (
                        gxProcSetListHdl procSetListHdl,
                        gxPostScriptImageDataHandle hImageData);
procSetListHdl
On entry, a handle to a preallocated PostScript procedure set list structure. On return, a value that specifies the procedure sets needed to image the document.
hImageData
A handle to the PostScript imaging system structure.
function result
An error code. The value noErr indicates that the operation was successful.
DESCRIPTION
QuickDraw GX sends the GXPostScriptGetDocumentProcSetList message when you send the GXImageDocument message. The GXPostScriptGetDocumentProcSetList message gathers information on which procedure sets are needed to image a specified document.

The default implementation of this message returns the procedure sets needed by the PostScript generic driver, the PostScript imaging engine, and the font handler. The set of procedure sets for all documents are typically the same: those that are specified in the imaging system's structure, as determined when the printer is initially queried. However, some documents might require special handling, which means additional procedure sets need to be downloaded.

You can then use the GXPostScriptDownloadProcSetList message to make these procedures available in the PostScript device.

SPECIAL CONSIDERATIONS
You must forward the GXPostScriptGetDocumentProcSetList message.

RESULT CODES
gxSegmentLoadFailedErrA required code segment could not be found,
or there was not enough memory to load it.
gxPrUserAbortErrThe user has canceled printing.
SEE ALSO
The PostScript procedure set list structure is described on page 4-29.

The PostScript imaging system structure is described on page 4-26.

The GXImageDocument message is described on page 4-93.

The GXPostScriptDownloadProcSetList message is described in the next section.

An example of overriding the GXPostScriptGetDocumentProcSetList message is shown in Listing 4-2. This example downloads a procedure set that corrects a known bug in the PostScript implementation in the LaserWriter IIg and IIf printers.

Listing 4-2 An example of the GXPostScriptGetDocumentProcSetList message

OSErr DriverGetDocumentProcSetList (gxProcSetListHdl procSetList,
                            gxPostScriptImageDataHdl imageDataHdl)
{
   OSErr anErr;

   anErr = Forward_GXPostScriptGetDocumentProcSetList(
                                    procSetList, imageDataHdl);
   if (anErr == noErr)
      {
      /* 
         Send this proc set to the IIg or IIf, or for portable
         PostScript.
      */
      if
         (
         ((**imageDataHdl).renderOptions &                                  gxPortablePostScriptOption) ||
         (gPrinterType == kLWIIf) ||
         (gPrinterType == kLWIIg)
         )
         {
         SetHandleSize( (Handle) procSetList,GetHandleSize(
                (Handle) procSetList) + sizeOf(ProcSetListRec));
         anErr == MemError();
         if (anErr == noErr)
            {
            gxProcSetListPtr pList = (gxProcSetListPtr) 
               ((unsigned long) (*procSetList)
                + GetHandleSize(Handle) procSetList)
                - sizeOf(gxProcSetListRec);
            pList->clientid = 'drvr';
            pList->controlType = gxPostscriptProcSetControlType;
            pList->controlid = kFAndGShowPatch;
            pList->dataType = 'rdws';
            }
         }
      }
   return(anErr);
}

Previous Book Contents Book Index Next

© Apple Computer, Inc.
7 JUL 1996




Navigation graphic, see text links

Main | Page One | What's New | Apple Computer, Inc. | Find It | Contact Us | Help